使用 QEMU/KVM 模拟 ARM64 |
您所在的位置:网站首页 › qemu 启动 android › 使用 QEMU/KVM 模拟 ARM64 |
使用 QEMU/KVM 模拟 ARM64
下载arm64专用BIOS,用于启动 EFI (可扩展固件接口) 内核 https://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd QEMU参数: -bios ./QEMU_EFI.fd 使用 debian mini.iso (99M)进行测试 安装镜像: https://d-i.debian.org/daily-images/arm64/daily/netboot/mini.iso 在x86_86上模拟arm qemu-system-aarch64 -M virt -cpu cortex-a57 \ -accel tcg,thread=multi -smp 4,cores=4,threads=1,sockets=1 -m 4096M \ -cdrom ./boot-mini-arm/mini.iso -monitor none -bios ../QEMU_EFI.fd 在arm64上使用kvm qemu-kvm -M virt -cpu max \ -accel tcg,thread=multi -smp 4,cores=4,threads=1,sockets=1 -m 4096M \ -cdrom ./boot-mini-arm/mini.iso -monitor none -bios ../QEMU_EFI.fd QEMU CPU参数: -cpu host 或 -cpu max 常见问题虚拟机太慢 QEMU默认内存只有512M,使用单核cpu QEMU cpu内存参数:-accel tcg,thread=multi -smp 4,cores=4,threads=1,sockets=1 -m 4096M 关闭GUI,通过串口、网络的方式访问系统 QEMU参数:-nographic,不会出现QEMU窗口QEMU参数:-serial stdio,串口重定向到qemu命令行。使用-nographic时,不用重复次选项设置虚拟机系统的默认启动级别,不启动X11启动虚拟机只显示一个qemu monitor CLI 解决方法: 使用快捷键 Ctrl+Alt+2 切换到串口界面使用 -monitor non 禁止QEMU monitor, 或使用 -serial stdio重定向串口到stdioBIOS加载失败,或加载过慢。 解决方法:跳过BIOS直接加载内核 当BIOS EFI引导失败时候,可以试试-kernel/-initrd直接指定启动内核,启动安装好的系统需要制定根目录(-append 'root=/dev/vda2') 安装启动使用的内核,可以挂载ISO在/boot目录下拷贝,也可以从这里下载: - Index of /daily-images/arm64/daily/netboot/debian-installer/arm64 也可以从安装好的image里拷贝vmlinuz/initrd文件。 如何访问未启动的虚拟机的image文件 解决方法:使用 qemu-nbd 例子:添加ssh认证key,从而无密码ssh登陆 [amos@fedora sietium.com]$ sudo modprobe nbd [amos@fedora sietium.com]$ ls -l /dev/nbd nbd0 nbd1 nbd2 nbd3 nbd4 nbd5 nbd6 nbd7 [amos@fedora sietium.com]$ sudo qemu-nbd -c /dev/nbd0 debian-10-openstack-arm64.qcow2 [amos@fedora sietium.com]$ sudo mount /dev/nbd0p2 /mnt [amos@fedora sietium.com]$ ls /mnt bin dev home initrd.img.old lost+found mnt proc run srv tmp var vmlinuz.old boot etc initrd.img lib media opt root sbin sys usr vmlinuz [amos@fedora sietium.com]$ cat /mnt/home/debian/.ssh/authorized_keys [amos@fedora sietium.com]$ ssh-add -L > /mnt/home/debian/.ssh/authorized_keys [amos@fedora sietium.com]$ sudo umount /mnt [amos@fedora sietium.com]$ sudo qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected未找到根文件系统 启动挂载根分区错误示例: Begin: Running /scripts/local-block ... done. Begin: Running /scripts/local-block ... done. Begin: Running /scripts/local-block ... done. done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/vda1 does not exist. Dropping to a shell! BusyBox v1.30.1 (Debian 1:1.30.1-6+b3) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)解决方法: 确认image的文件格式 (raw, qcow2), 在qemu命令行明确指定格式QEMU参数: -drive if=none,file=./debian-11.qcow2,format=qcow2,id=hd0 -device virtio-blk-device,drive=hd0 如果是直接从指定内核启动,需要使用 -append 'root=/dev/vda2' 指定根分区如果是使用virtio-blk,设备名前缀为 /dev/vdaX, 如果是默认的ide接口 前缀为 /dev/hdaX 可以通过 ls /dev 进行查看。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |